module com.kun.companion {
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;
    requires javafx.web;
    requires java.desktop;
    requires java.base;
    requires java.sql;
    requires jdk.jsobject;
    // 日志
    requires org.slf4j;
    requires ch.qos.logback.classic;
    requires ch.qos.logback.core;
    // 工具
    requires cn.hutool;
    // json
    requires com.fasterxml.jackson.databind;
    requires com.fasterxml.jackson.datatype.jsr310;
    requires com.fasterxml.jackson.module.paramnames;
    requires org.jetbrains.annotations;
    // 高性能的 Java 类路径扫描库
    requires io.github.classgraph;
    requires net.bytebuddy;
    requires org.jsoup;
    requires org.commonmark;
    requires okhttp3;
    requires kotlin.stdlib;

    // 开放给反射
    opens com.kun.companion to javafx.fxml, com.fasterxml.jackson.databind;
    opens com.kun.companion.controller to com.fasterxml.jackson.databind, javafx.fxml;
    opens com.kun.companion.core.context to net.bytebuddy.agent;
    opens com.kun.companion.util to net.bytebuddy, java.base;
    opens com.kun.companion.core.queue.ui.button to javafx.fxml;
    opens com.kun.companion.core.ui.progress to javafx.fxml;
    opens com.kun.companion.core.ui.button to javafx.fxml;
    opens com.kun.companion.core.domain.dto to net.bytebuddy.agent;
    opens com.kun.companion.core.domain to net.bytebuddy.agent;
    opens com.kun.companion.core.aop to net.bytebuddy.agent;
    opens com.kun.companion.core.context.factory to net.bytebuddy.agent;
    opens com.kun.companion.core.context.impl to net.bytebuddy.agent;
    opens com.kun.companion.core.context.annotation to net.bytebuddy.agent;
    opens com.kun.companion.core.aop.annotation to net.bytebuddy.agent;
    opens com.kun.companion.core.aop.interceptor to net.bytebuddy.agent;
    opens com.kun.companion.core.ui.component to net.bytebuddy.agent;
    opens com.kun.companion.core.http.request to com.fasterxml.jackson.databind;
    opens com.kun.companion.core.http.response to com.fasterxml.jackson.databind;

    // 导出到其他模块
    exports com.kun.companion;
    exports com.kun.companion.controller;
    exports com.kun.companion.core.context;
    exports com.kun.companion.core.config;
    exports com.kun.companion.core.domain.dto;
    exports com.kun.companion.core;
    exports com.kun.companion.core.exception;
    exports com.kun.companion.util;
    exports com.kun.companion.core.queue.ui.button;
    exports com.kun.companion.core.ui.list;
    exports com.kun.companion.core.thread;
    exports com.kun.companion.core.ui.view;
    exports com.kun.companion.core.ui.button;
    exports com.kun.companion.core.domain;
    exports com.kun.companion.core.aop;
    exports com.kun.companion.core.context.factory;
    exports com.kun.companion.core.context.impl;
    exports com.kun.companion.core.context.annotation;
    exports com.kun.companion.core.aop.annotation;
    exports com.kun.companion.core.aop.interceptor;
    exports com.kun.companion.core.ui.tree;
    exports com.kun.companion.core.ui.component;
    exports com.kun.companion.core.http.request;
    exports com.kun.companion.core.http.response;
}